// 进行打包 monerepo 打包方式
// 1. 获取打包目录
import fs from "fs";
import {execa} from "execa";
// const execa= require("execa") ;
// const fs=require('fs');
// const execa=require("execa");
const dirs=fs.readdirSync("packages").filter(f=>{
    if(!fs.statSync(`packages/${f}`).isDirectory()||f=="examples"){
        return false;
    }
    return true;
})
// 2 进行打包，并行打包
async function build(target){
    console.warn("打包目录:",target)
    await execa('rollup',['-c',"--environment",`TARGET:${target}`],{stdio:'inherit'})//子进程在父包中输出
}
async function runParaller(dirs,itemfn){
    let result=[];
    dirs.forEach(dir => {
        result.push(itemfn(dir))
    });
    return Promise.all(result);
}
runParaller(dirs,build).then(()=>{
    console.log('成功')
})
// 之打包文件
console.warn(dirs)